這篇文章要介紹的是 Jenkins Operator 這個有趣的應用程式,Operator 的概念先前有不少文章再探討其架構與意義,因此本篇文章會專注於 Jenkins Operator 這個應用程式能夠為 Jenkins 的環境與應用帶來什麼樣的變化。
首先本文開始前,要先準備三個東西
1. Kubernetes Cluster
2. Helm 安裝環境
3. 一個放有你 Jenkins pipeline 與 script 的 SCM(Source Code Management),通常都是 Git
接下來作者透過 Helm 安裝了 Jenkins Operator 該控制器到 Kubernetes 內並且準備了相關的 CRD 用來控制 Jenkins.
範例中的 CRD 主要會做兩件事情
1. 設定 Jenkins 本身,包含要安裝哪些 Plugin 等
2. SeedJobs: 可以將外部 SCM 內所描述的 Job 內容給直接設定到 Jenkins 內
當該 CRD 給套用到 Kubernetes 後,該 Jenkins Operator 就會幫忙初始化整個 Jenkins 以及相關的 Plugin。最後將 SeedJobs 內所描述的資訊給整合到 Jenkins 中來創建相關的 Job.
透過這整個 CRD 操作帶來的好處我認為有
1. 整個過程盡量減少手動操作,全部都依賴 Yaml 與 Pipeline 等程式碼的方式去維護
2. 與 Kubernetes 整合,對於熟悉 Kubernetes 的操作人員來說,學習過程不會太痛苦。
3. 把 Jenkins 變得稍微簡單一些,一些繁瑣過程讓 Jenkins Operator 去操作
我自己看完後,目前看到的壞處有
1. Jenkins 功能太多,生態系太複雜,我懷疑這種 Operaotr 只是一時的專案,沒有一直保持更新的話一定會有些功能終究還是要手動操作
2. 設定的內容我認為不如 Jenkins 生態系中的 Configuration as Code 這套 Plugin 來的專業與強大
3. Job 的設定部分我個人還是偏好使用 Jenkins Job Builder 這套基於 YAML 的解決方案來管理與定義全部
結論:
1. 我個人是當作一個新東西看看,但是不會有想要嘗試的慾望,因為覺得事情其實沒有變得簡單多少,甚至擔心引入一個半成品,導致多一個東西要維護..
https://medium.com/swlh/introduction-to-jenkins-operator-f4cb7ebc2e0b
什麼是configuration management 在 矽谷牛的耕田筆記 Facebook 的最佳解答
今天這篇文章是一個經驗文,作者列出了 DevOps 面試時可能會被問的八大問題,並且針對這八大問題給出了其答案,讓我們來看看如果今天是你,你會怎麼回答這些問題。
個人看法: 對我來說看看這類型的文章有時候也是幫你重整思路,看看自己目前哪一個環節還不熟悉,哪個環節還可以更好
首先作者認為, DevOps 面試的題目大致上分成七類,分別是
a. General questions — defining terms/etc.
b. Version control
c. Continuous integration
d. Continuous testing
e. Configuration management
f. Continuous monitoring
g. Containerization and virtualization
根據這七項整合,作者列出了八個問題,這邊就節錄一兩個問題,有興趣的記得點選全文觀看
1. 請解釋當瀏覽器輸入 URL 時,整個的運作過程 (這問題的答案可以簡單也可以男,完全取決於你對於他的認知)
2. 你過往有使用過哪些 DevOps 的相關工具,這些工具是如何整合的?
3. 請解釋一下 IaaS, PaaS 以及 SaaS 的差異性
4. 你會如何定義 Configuration as a code? 這種模式可以帶來什麼好處?
5. 從商業角度來看,採用 DevOps 能夠帶來什麼好處與壞處?
https://medium.com/better-programming/top-8-devops-interview-questions-and-answers-9120f554d1b9
什麼是configuration management 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
今天要分享的是來自 lambda 的團隊根據其多年 Kubernetes 的經驗分享,該篇文章篇長,閱讀可能需要15分鐘左右,這邊幫大家重點整理,有興趣的別錯過完整內容,我個人滿推薦細讀的
# 重點整理
1. 團隊一開始是透過 Ansible + Valut + Consul 來管理整個架構+應用程式的部署。
2. 作者認為一個非常重要的東西就是, 想清楚你為什麼需要 Kubernetes,不要隨便盲目的使用
3. Kubernetes 的學習曲線非常高,除了 Kubernetes 本身之外,還有很多整合的東西都需要一起學習,譬如 Monitoring, Logging, CI/CD, Secret Management, Tracing 等,每個領域都不簡單
4. Kubernetes 的導入,並非只有營運團隊需要處理,實際上是整個產品團隊都會連帶影響,譬如對於開發者來說,本地開發要怎麼做,本地測試要怎麼做?
CI/CD 如果要考慮 Kuberntees,有哪些部分需要注意? 應用程式如何打包與上版本? 更新策略是什麼?
這中間有超多的議題需要整個團隊一起學習與克服,才能夠真正享受到 Kubernetes 帶來的好處
5. 轉移到 Kubernets 中間的過渡期很辛苦,同時維護兩種架構,這需要時間去處理,沒有辦法馬上完成,也不可能一步到位
6. 文章中也有提到作者團隊於各領域所採取的解決方案,這邊就大概列一下
Prometheus, Grafana Loki, Vault, Tekton, Argo Workflow, Telepresence, Skaffold, Kustomize, AWS, Kops
註: 我個人認為裡面最重要的一點就是第二點,任何領域都一定,不要盲目追求潮流,而是要有充分的理由去說服自己為什麼需要使用某產品。對我來說一個很重要的行動準則是,要先說服自己,才有辦法說服別人
https://lambda.grofers.com/learnings-from-two-years-of-kubernetes-in-production-b0ec21aa2814
什麼是configuration management 在 DevOps Taiwan | “Drift” 的問題對於組態管理(配置管理 的推薦與評價
Drift” 的問題對於組態管理(配置管理,Configuration Management)也是相當重要的議題。 (現在Infrastructure as Code 與Configuration management 確實是有些難以 ... ... <看更多>